<?php 
header("content-type:text/html;charset=utf-8");//字符集设置
date_default_timezone_set('PRC');//设置时区

// 导入配置文件
require './configs/config.php';
// require './models/Model.class.php';

// 导入所有的控制器
/*require './controllers/IndexController.class.php';
require './controllers/UserController.class.php';
require './controllers/GoodsController.class.php';*/

// (当使用不存在的类时)自动加载类
// __autoload与smarty自动加载类冲突，故改名字
function mvc_autoload($classname)
{	
	// echo $classname;
	if (file_exists("./models/{$classname}.class.php")) {
		require "./models/{$classname}.class.php";
	} elseif (file_exists("./controllers/{$classname}.class.php")) {
		require "./controllers/{$classname}.class.php";
	} else {
		header('HTTP/1.o 404 not found');//非IE
		header('Status:404 not found');//兼容IE
		echo "<h1>404 NOT FOUND</h1>";
		exit;
	}
	
}

// 导入Smarty模板引擎
require './libs/Smarty.class.php';
// 与系统级自动加载类冲突，用系统标准库中的spl_autoload_register更改魔术方法的__autoload
spl_autoload_register('mvc_autoload');

// 实例化模板引擎
// $smarty = new Smarty();//被基类继承后，就不用实例化了
// var_dump($smarty);

/*// Smarty配置文件 配置 被基类继承，修改太多，直接放在控制基类中自动加载
$smarty->setTemplateDir('./views')
	   ->setCompileDir('./runtime/views_c')
	   ->setConfigDir('./configs')
	   ->setCacheDir('./runtime/caches');
// 配置 模板定界符
$smarty->left_delimiter = "<{";
$smarty->right_delimiter = "}>";
// 缓存 配置
$smarty->caching = false;
// 缓存时间 配置
$smarty->cache_lifetime = 30;*/



// 获取用户参数

// 获取控制器名
$c = (!empty($_GET['c']))?$_GET['c']:'Index';

// 获取方法名
$a = (!empty($_GET['a']))?$_GET['a']:'index';

// 拼接类名
$classname = $c.'Controller';
// 动态的实例化控制器
$controller = new $classname();
// var_dump($controller);

// 调用控制中的方法
$controller->$a();